import axios from "axios";
import router from "@/router";
import { ElLoading } from "element-plus";
// 判断是生产环境还是开发环境
// npm run dev---->开发环境
// npm run build---->生产环境

// const isDev = process.env.NODE_ENV === 'development' // 真 - 开发环境，假-生产环境

const instance = axios.create({
  // baseURL: isDev ? "http://47.94.6.186:3001" : "http://xxx/api",
  baseURL: "http://127.0.0.1:3001"
})
// 设置请求拦截器
instance.interceptors.request.use((config) => {
  console.log();

  if (localStorage.getItem('user')) {
    // 所有的请求去携带有 token 验证登录的信息
    config.headers.token = JSON.parse(localStorage.getItem('user') as string).token
  }
  // config.headers.token = localStorage.getItem('token')

  // 也可以展示loading动画
  ElLoading.service({
    lock: true,
    text: 'Loading',
    background: 'rgba(0, 0, 0, 0.7)',
  })
  return config
}, (err) => {
  return Promise.reject(err)
})

// 请求响应的拦截器
instance.interceptors.response.use((response) => {

  const loadingInstance = ElLoading.service({
    lock: true,
    text: 'Loading',
    background: 'rgba(0, 0, 0, 0.7)',
  })
  loadingInstance.close()

  if (response.data.code === '10119') {
    // token 无效  需要重新登录
    localStorage.clear()
    router.push('/login')
    return response
  } else {
    return response
  }

}, (err) => {
  return Promise.reject(err)
})

export default instance;